pygrub's setup.py relies on distutils.UnixCCompiler.has_function(),
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 19 Oct 2005 15:07:11 +0000 (16:07 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 19 Oct 2005 15:07:11 +0000 (16:07 +0100)
which does not exist with python2.2, causing the following build
error:

make[2]: Entering directory `/home/muli/xen/x86.hg/tools/pygrub'
CFLAGS=" -m32 -march=i686" python setup.py build
Traceback (most recent call last):
  File "setup.py", line 15, in ?
    if cc.has_function("ext2fs_open2"):
AttributeError: UnixCCompiler instance has no attribute 'has_function'

The following patch gets it to build, but is pretty ugly. A proper fix
would be to do the check for ext2fs_open2() in a way that is backward
compatible with python2.2.

Signed-Off-By: Muli Ben-Yehuda <mulix@mulix.org>
tools/pygrub/setup.py

index 680535d6cb0eeb5362fbf76af12d16627c72328e..43e46762a8656fd3159f6ea956540155604cb46e 100644 (file)
@@ -12,11 +12,14 @@ if os.path.exists("/usr/include/ext2fs/ext2_fs.h"):
     ext2defines = []
     cc = new_compiler()
     cc.add_library("ext2fs")
-    if cc.has_function("ext2fs_open2"):
-        ext2defines.append( ("HAVE_EXT2FS_OPEN2", None) )
-    else:
-        sys.stderr.write("WARNING: older version of e2fsprogs installed, not building full\n")
-        sys.stderr.write("         disk support for ext2.\n")
+    try:
+        if cc.has_function("ext2fs_open2"):
+            ext2defines.append( ("HAVE_EXT2FS_OPEN2", None) )
+        else:
+            sys.stderr.write("WARNING: older version of e2fsprogs installed, not building full\n")
+            sys.stderr.write("         disk support for ext2.\n")
+    except AttributeError:
+        pass
         
     ext2 = Extension("grub.fsys.ext2._pyext2",
                      extra_compile_args = extra_compile_args,